package com.cn.xiaonuo.slbfinances.slborders.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@TableName("sl_recharge_order")
public class SlRechargeOrder implements Serializable {
    /**
     * 唯一标识
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * slb充值类型1话费2水费3电费4气费
     */
    private Integer rechargeType;

    /**
     * slb充值订单编号，自动生成
     */
    private String orderNumber;

    /**
     * slb用户唯一标识符
     */
    private Integer userId;

    /**
     * slb充值账号
     */
    private String rechargeAccount;

    /**
     * slb支付金额
     */
    private BigDecimal paymentAmout;

    /**
     * slb支付方式1微信,2支付宝
     */
    private Integer paymentChannel;

    /**
     * slb订单付款状态 0 未付款1 已付款2 已退款
     */
    private Integer paymentState;

    /**
     * slb兑换类型1兑礼券，目前只有券，后续可以加积分之类的
     */
    private Integer exchangeType;

    /**
     * slb兑换数量
     */
    private Integer exchangeMunber;

    /**
     * slb支付时间，格式：yyyy-MM-dd hh:mm:ss
     */
    private Date payTime;

    /**
     * slb创建时间，格式：yyyy-MM-dd hh:mm:ss
     */
    private Date createdAt;

    /**
     * slb更新时间，格式：yyyy-MM-dd hh:mm:ss
     */
    private Date updatedAt;

    /**
     * 订单编号
     */
    private String eBillId;

    /**
     * 商品编号
     */
    private String eItemId;

    /**
     * 商品名称
     */
    private String eItemName;

    /**
     * 订单总金额，单位元，保留3位小数
     */
    private String eSaleAmount;

    /**
     * 订单成本(进价)，单位元，保留3位小数
     */
    private String eOrderCost;

    /**
     * 订单利润，单位元，保留3位小数
     */
    private String eOrderProfit;

    /**
     * 订单付款状态 0 未付款1 已付款
     */
    private String ePayState;

    /**
     * 订单充值状态 0充值中 1成功 9撤销
     */
    private String eRechargeState;

    /**
     * 商品类型：1:实物商品 2:直充商品 3:卡密商品 4:话费充值 6:支付和金币充值
     */
    private String eClassType;

    /**
     * 订单生成时间，格式：yyyy-MM-dd hh:mm:ss
     */
    private String eOrderTime;

    /**
     * 订单处理时间，格式：yyyy-MM-dd hh:mm:ss
     */
    private String eOperateTime;

    /**
     * 记录状态 1:正常 0:删除
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * slb退款时间，格式：yyyy-MM-dd hh:mm:ss
     */
    private Date refundAt;

    private static final long serialVersionUID = 1L;

    /**
     * 获取唯一标识
     *
     * @return id - 唯一标识
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置唯一标识
     *
     * @param id 唯一标识
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取slb充值类型1话费2水费3电费4气费
     *
     * @return recharge_type - slb充值类型1话费2水费3电费4气费
     */
    public Integer getRechargeType() {
        return rechargeType;
    }

    /**
     * 设置slb充值类型1话费2水费3电费4气费
     *
     * @param rechargeType slb充值类型1话费2水费3电费4气费
     */
    public void setRechargeType(Integer rechargeType) {
        this.rechargeType = rechargeType;
    }

    /**
     * 获取slb充值订单编号，自动生成
     *
     * @return order_number - slb充值订单编号，自动生成
     */
    public String getOrderNumber() {
        return orderNumber;
    }

    /**
     * 设置slb充值订单编号，自动生成
     *
     * @param orderNumber slb充值订单编号，自动生成
     */
    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber == null ? null : orderNumber.trim();
    }

    /**
     * 获取slb用户唯一标识符
     *
     * @return user_id - slb用户唯一标识符
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 设置slb用户唯一标识符
     *
     * @param userId slb用户唯一标识符
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 获取slb充值账号
     *
     * @return recharge_account - slb充值账号
     */
    public String getRechargeAccount() {
        return rechargeAccount;
    }

    /**
     * 设置slb充值账号
     *
     * @param rechargeAccount slb充值账号
     */
    public void setRechargeAccount(String rechargeAccount) {
        this.rechargeAccount = rechargeAccount == null ? null : rechargeAccount.trim();
    }

    /**
     * 获取slb支付金额
     *
     * @return payment_amout - slb支付金额
     */
    public BigDecimal getPaymentAmout() {
        return paymentAmout;
    }

    /**
     * 设置slb支付金额
     *
     * @param paymentAmout slb支付金额
     */
    public void setPaymentAmout(BigDecimal paymentAmout) {
        this.paymentAmout = paymentAmout;
    }

    /**
     * 获取slb支付方式1微信,2支付宝
     *
     * @return payment_channel - slb支付方式1微信,2支付宝
     */
    public Integer getPaymentChannel() {
        return paymentChannel;
    }

    /**
     * 设置slb支付方式1微信,2支付宝
     *
     * @param paymentChannel slb支付方式1微信,2支付宝
     */
    public void setPaymentChannel(Integer paymentChannel) {
        this.paymentChannel = paymentChannel;
    }

    /**
     * 获取slb订单付款状态 0 未付款1 已付款2 已退款
     *
     * @return payment_state - slb订单付款状态 0 未付款1 已付款2 已退款
     */
    public Integer getPaymentState() {
        return paymentState;
    }

    /**
     * 设置slb订单付款状态 0 未付款1 已付款2 已退款
     *
     * @param paymentState slb订单付款状态 0 未付款1 已付款2 已退款
     */
    public void setPaymentState(Integer paymentState) {
        this.paymentState = paymentState;
    }

    /**
     * 获取slb兑换类型1兑礼券，目前只有券，后续可以加积分之类的
     *
     * @return exchange_type - slb兑换类型1兑礼券，目前只有券，后续可以加积分之类的
     */
    public Integer getExchangeType() {
        return exchangeType;
    }

    /**
     * 设置slb兑换类型1兑礼券，目前只有券，后续可以加积分之类的
     *
     * @param exchangeType slb兑换类型1兑礼券，目前只有券，后续可以加积分之类的
     */
    public void setExchangeType(Integer exchangeType) {
        this.exchangeType = exchangeType;
    }

    /**
     * 获取slb兑换数量
     *
     * @return exchange_munber - slb兑换数量
     */
    public Integer getExchangeMunber() {
        return exchangeMunber;
    }

    /**
     * 设置slb兑换数量
     *
     * @param exchangeMunber slb兑换数量
     */
    public void setExchangeMunber(Integer exchangeMunber) {
        this.exchangeMunber = exchangeMunber;
    }

    /**
     * 获取slb支付时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @return pay_time - slb支付时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public Date getPayTime() {
        return payTime;
    }

    /**
     * 设置slb支付时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @param payTime slb支付时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    /**
     * 获取slb创建时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @return created_at - slb创建时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置slb创建时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @param createdAt slb创建时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取slb更新时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @return updated_at - slb更新时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置slb更新时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @param updatedAt slb更新时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取订单编号
     *
     * @return e_bill_id - 订单编号
     */
    public String geteBillId() {
        return eBillId;
    }

    /**
     * 设置订单编号
     *
     * @param eBillId 订单编号
     */
    public void seteBillId(String eBillId) {
        this.eBillId = eBillId == null ? null : eBillId.trim();
    }

    /**
     * 获取商品编号
     *
     * @return e_item_id - 商品编号
     */
    public String geteItemId() {
        return eItemId;
    }

    /**
     * 设置商品编号
     *
     * @param eItemId 商品编号
     */
    public void seteItemId(String eItemId) {
        this.eItemId = eItemId == null ? null : eItemId.trim();
    }

    /**
     * 获取商品名称
     *
     * @return e_item_name - 商品名称
     */
    public String geteItemName() {
        return eItemName;
    }

    /**
     * 设置商品名称
     *
     * @param eItemName 商品名称
     */
    public void seteItemName(String eItemName) {
        this.eItemName = eItemName == null ? null : eItemName.trim();
    }

    /**
     * 获取订单总金额，单位元，保留3位小数
     *
     * @return e_sale_amount - 订单总金额，单位元，保留3位小数
     */
    public String geteSaleAmount() {
        return eSaleAmount;
    }

    /**
     * 设置订单总金额，单位元，保留3位小数
     *
     * @param eSaleAmount 订单总金额，单位元，保留3位小数
     */
    public void seteSaleAmount(String eSaleAmount) {
        this.eSaleAmount = eSaleAmount == null ? null : eSaleAmount.trim();
    }

    /**
     * 获取订单成本(进价)，单位元，保留3位小数
     *
     * @return e_order_cost - 订单成本(进价)，单位元，保留3位小数
     */
    public String geteOrderCost() {
        return eOrderCost;
    }

    /**
     * 设置订单成本(进价)，单位元，保留3位小数
     *
     * @param eOrderCost 订单成本(进价)，单位元，保留3位小数
     */
    public void seteOrderCost(String eOrderCost) {
        this.eOrderCost = eOrderCost == null ? null : eOrderCost.trim();
    }

    /**
     * 获取订单利润，单位元，保留3位小数
     *
     * @return e_order_profit - 订单利润，单位元，保留3位小数
     */
    public String geteOrderProfit() {
        return eOrderProfit;
    }

    /**
     * 设置订单利润，单位元，保留3位小数
     *
     * @param eOrderProfit 订单利润，单位元，保留3位小数
     */
    public void seteOrderProfit(String eOrderProfit) {
        this.eOrderProfit = eOrderProfit == null ? null : eOrderProfit.trim();
    }

    /**
     * 获取订单付款状态 0 未付款1 已付款
     *
     * @return e_pay_state - 订单付款状态 0 未付款1 已付款
     */
    public String getePayState() {
        return ePayState;
    }

    /**
     * 设置订单付款状态 0 未付款1 已付款
     *
     * @param ePayState 订单付款状态 0 未付款1 已付款
     */
    public void setePayState(String ePayState) {
        this.ePayState = ePayState == null ? null : ePayState.trim();
    }

    /**
     * 获取订单充值状态 0充值中 1成功 9撤销
     *
     * @return e_recharge_state - 订单充值状态 0充值中 1成功 9撤销
     */
    public String geteRechargeState() {
        return eRechargeState;
    }

    /**
     * 设置订单充值状态 0充值中 1成功 9撤销
     *
     * @param eRechargeState 订单充值状态 0充值中 1成功 9撤销
     */
    public void seteRechargeState(String eRechargeState) {
        this.eRechargeState = eRechargeState == null ? null : eRechargeState.trim();
    }

    /**
     * 获取商品类型：1:实物商品 2:直充商品 3:卡密商品 4:话费充值 6:支付和金币充值
     *
     * @return e_class_type - 商品类型：1:实物商品 2:直充商品 3:卡密商品 4:话费充值 6:支付和金币充值
     */
    public String geteClassType() {
        return eClassType;
    }

    /**
     * 设置商品类型：1:实物商品 2:直充商品 3:卡密商品 4:话费充值 6:支付和金币充值
     *
     * @param eClassType 商品类型：1:实物商品 2:直充商品 3:卡密商品 4:话费充值 6:支付和金币充值
     */
    public void seteClassType(String eClassType) {
        this.eClassType = eClassType == null ? null : eClassType.trim();
    }

    /**
     * 获取订单生成时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @return e_order_time - 订单生成时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public String geteOrderTime() {
        return eOrderTime;
    }

    /**
     * 设置订单生成时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @param eOrderTime 订单生成时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public void seteOrderTime(String eOrderTime) {
        this.eOrderTime = eOrderTime == null ? null : eOrderTime.trim();
    }

    /**
     * 获取订单处理时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @return e_operate_time - 订单处理时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public String geteOperateTime() {
        return eOperateTime;
    }

    /**
     * 设置订单处理时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @param eOperateTime 订单处理时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public void seteOperateTime(String eOperateTime) {
        this.eOperateTime = eOperateTime == null ? null : eOperateTime.trim();
    }

    /**
     * 获取记录状态 1:正常 0:删除
     *
     * @return status - 记录状态 1:正常 0:删除
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置记录状态 1:正常 0:删除
     *
     * @param status 记录状态 1:正常 0:删除
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取备注
     *
     * @return remark - 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置备注
     *
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    /**
     * 获取slb退款时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @return refund_at - slb退款时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public Date getRefundAt() {
        return refundAt;
    }

    /**
     * 设置slb退款时间，格式：yyyy-MM-dd hh:mm:ss
     *
     * @param refundAt slb退款时间，格式：yyyy-MM-dd hh:mm:ss
     */
    public void setRefundAt(Date refundAt) {
        this.refundAt = refundAt;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", rechargeType=").append(rechargeType);
        sb.append(", orderNumber=").append(orderNumber);
        sb.append(", userId=").append(userId);
        sb.append(", rechargeAccount=").append(rechargeAccount);
        sb.append(", paymentAmout=").append(paymentAmout);
        sb.append(", paymentChannel=").append(paymentChannel);
        sb.append(", paymentState=").append(paymentState);
        sb.append(", exchangeType=").append(exchangeType);
        sb.append(", exchangeMunber=").append(exchangeMunber);
        sb.append(", payTime=").append(payTime);
        sb.append(", createdAt=").append(createdAt);
        sb.append(", updatedAt=").append(updatedAt);
        sb.append(", eBillId=").append(eBillId);
        sb.append(", eItemId=").append(eItemId);
        sb.append(", eItemName=").append(eItemName);
        sb.append(", eSaleAmount=").append(eSaleAmount);
        sb.append(", eOrderCost=").append(eOrderCost);
        sb.append(", eOrderProfit=").append(eOrderProfit);
        sb.append(", ePayState=").append(ePayState);
        sb.append(", eRechargeState=").append(eRechargeState);
        sb.append(", eClassType=").append(eClassType);
        sb.append(", eOrderTime=").append(eOrderTime);
        sb.append(", eOperateTime=").append(eOperateTime);
        sb.append(", status=").append(status);
        sb.append(", remark=").append(remark);
        sb.append(", refundAt=").append(refundAt);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}